/*
 * UniMediaReader.cpp
 *
 *  Created on: 2020年8月12日
 *      Author: chuanjiang.zh
 */

#include "UniMediaReader.h"
#include "FfmpegMediaReader.h"
#include "LoopMediaReader.h"
#include "CLog.h"


UniMediaReader::UniMediaReader()
{
}

UniMediaReader::~UniMediaReader()
{
}


void UniMediaReader::startup()
{
#if (LIBAVFORMAT_VERSION_MAJOR <= 57)
	av_register_all();
#endif //

	avformat_network_init();

	//av_log_set_level(AV_LOG_ERROR);

	CLog::setLogger(CLog::DEBUGWINDOW);
}

void UniMediaReader::cleanup()
{
	avformat_network_deinit();
}


DLLEXPORT UMediaReader* UniMediaReader::create(const char* url)
{
	return new FfmpegMediaReader();
}

DLLEXPORT void UniMediaReader::destroy(UMediaReader* reader)
{
	if (reader)
	{
		reader->close();
		delete reader;
	}
}

UMediaReader* UniMediaReader::createLoopReader(UMediaReader* reader, int count)
{
	return new LoopMediaReader(reader, false, count);
}

UMediaReader* UniMediaReader::createLoopReader(const char* url, int count)
{
	UMediaReader* reader = create(url);
	return new LoopMediaReader(reader, true, count);
}